Skip to content

Ignore faulty GPUs when listing GPUs - #66

Open
geobeau wants to merge 1 commit into
NVIDIA:mainfrom
geobeau:main
Open

Ignore faulty GPUs when listing GPUs#66
geobeau wants to merge 1 commit into
NVIDIA:mainfrom
geobeau:main

Conversation

@geobeau

@geobeau geobeau commented May 18, 2026

Copy link
Copy Markdown

We have the case where a server has some of the GPUs in a broken state, however we want to continue using the other GPUs. While the nvidia operator is aware that these GPUs are out, it fails when computing GPU topology.
The goal of this PR is to skip broken GPUs when computing the topology

On servers with some of the GPUs broken, we want
to continue using the other GPUs. However, when
computing the topology, it fails on GPU Lost state.

Signed-off-by: g.beausire <[email protected]>
@geobeau

geobeau commented May 20, 2026

Copy link
Copy Markdown
Author

cc @rajatchopra, sorry for the ping but you are the last one that merged something on the repo, do you mind taking a look?

@kvalliyurnatt kvalliyurnatt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution ! I think we need more changes to actually be able to ignore faulty GPUs, I have left a couple of comments. Sorry i misread the goal of the PR, I am taking another look, dismissed my earlier review

@kvalliyurnatt
kvalliyurnatt dismissed their stale review September 2, 2026 18:35

I reread the goal of the PR, operator already knows about the broken GPUs. OS my comments are not valid in this case

Comment thread internal/links/device.go
for i := 0; i < nvml.NVLINK_MAX_LINKS; i++ {
state, ret := dev.GetNvLinkState(i)
if ret == nvml.ERROR_NOT_SUPPORTED || ret == nvml.ERROR_INVALID_ARGUMENT {
if ret == nvml.ERROR_NOT_SUPPORTED || ret == nvml.ERROR_INVALID_ARGUMENT || ret == nvml.ERROR_GPU_IS_LOST {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add a higher-level test demonstrating the expected operator flow: topology discovery tolerates ERROR_GPU_IS_LOST, the known-broken GPU is excluded from the allocation set, and BestEffort successfully evaluates the remaining healthy GPUs? This would document the caller-side filtering assumption and why incomplete links involving the broken GPU are safe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants